در زمان نوشتن يک برنامه کامپيوتری با استفاده از هر زبان برنامه نويسی نظير VB.NET می توان از ساختارهای متفاوتی به منظور کنترل روند اجرای کدها ، استفاده نمود . ساختارهای فوق را می توان به سه گروه عمده تقسيم نمود :
ساختارهای تصميم گيری ( اتخاذ تصميم در خصوص اجراء و يا عدم اجرای خط و يا خطوطی از برنامه ) ساختارهای تکرار ( اجرای يک و يا مجموعه ای کد به دفعات مورد نياز ) ساختارهای پرش ( توقف روند جاری اجرای يک برنامه و پرش به يک محل و اجرای يک بلاک کد خاص ) در مجموعه مقالاتی که در اين رابطه ارائه خواهد شد به بررسی هر يک از ساختارهای فوق در VB.NET و نحوه استفاده از آنان به منظور ايجاد صفحات ASP.NET خواهيم پرداخت . اسکريپت های ويژوال بيسيک
در بخش اول اين مقاله با هر يک از ساختارهای فوق به صورت اجمالی آشنا خواهيم شد.
يک برنامه ويژوال بيسيک از مجموعه ای دستورات ( کدهائی با يک گرامر خاص مربوط به يک زبان ) که باعث انجام پردازش های لازم به منظور توليد اطلاعات می شود ، تشکيل می گردد . دستورات و يا عبارات فوق با يک اولويت منطقی سازماندهی می گردند تا کامپيوتر را قادر به انجام پردازش های لازم به صورت مرحله به مرحله و بر اساس يک نظم خاص نمايند . در برنامه های وب ، از عبارات ويژوال بيسيک با نام اسکريپت ياد می شود .
کدهای ويژوال بيسيک را می توان از لحاظ فيزيکی در دو مکان متفاوت مستقر نمود : کدهای همراه صفحات وب و يا کدهائی که در يک فايل جداگانه مستقر و امکان دستيابی آنان از طريق صفحاب وب وجود خواهد داشت . صرفنظر از مکانی که کدها مستقر خواهند شد ، اسکريپت های ويژوال بيسيک ، به منزله روتين هائی می باشند که می توان از آنان به منظور انجام پردازش های موردنياز و توليد نتايج به منظور نمايش بر روی صفحه ، استفاده نمود .
بلاک های اسکريپت
زمانی که کدهای ويژوال بيسيک همراه يک صفحه وب آورده می شوند ، می بايست توسط يک بلاک اسکريپت ، مشخص گردند . يک بلاک اسکريپت ، بخشی از يک صفحه است که توسط تگ
خصلت runat=server ، نشاندهنده اين موضوع است که اسکريپت های نوشته شده می بايست توسط کامپيوتر سرويس دهنده وب وقبل از ارسال صفحه برای کامپيوتر سرويس گيرنده ، اجراء گردند. خصلت فوق ، همچنين بين اسکريپت های سرويس دهنده و اسکريپت های سرويس گيرنده و يا مرورگر ، تفاوت قائل می شود ( اسکريپت های سمت سرويس گيرنده معمولا" با استفاده از جاوااسکريپت نوشته می گردند ) .
خصلت Language ، زبان استفاده شده به منظور نوشتن اسکريپت ها را مشخص می نمايد . با توجه به اين که ويژوال بيسيک زبان پيش فرض برای نوشتن اسکريپت های سمت سرويس دهنده می باشد ، استفاده از خصلت فوق می تواند اختياری باشد ( در صورتی که از زبان ويژوال بيسيک برای نوشتن اسکريپت ها استفاده می نمائيم ) .
يک بلاک اسکريپت را می توان در هر محلی از صفحه وب مستقر و در صورت نياز از چندين بلاک اسکريپت استفاده نمود. (در اغلب موارد يک بلاک اسکريپت کفايت خواهد کرد). در اکثر موارد ، ترجيج داده می شود که اسکريپت ها در ابتدای صفحه مستقر گردند ( قبل از هر کد HTML ) . علت استقرار اسکريپت ها در ابتدای صفحه ، تشخيص اين موضوع است که سرويس دهنده در ابتدا اسکريپت ها را اجراء خواهد کرد ( قبل از انجام هر گونه عمليات مرتبط با عناصر موجود بر روی يک صفحه وب ) .
برنامه های جانبی
يک بلاک اسکريپت ، مکانی است که تمامی عبارات ويژوال بيسيک موجود بر روی يک صفحه را در خود نگهداری می نمايد . اکثر عبارات می بايست درون ساختارهای برنامه نويسی خاصی مستقر تا امکان اجرای صحيح آنان فراهم گردد . اين ساختارها ، دارای يک نام می باشند که با فراخوانی آنان ، تمامی دستورات موجود در ساختار به منظور انجام پردازش های مورد نياز ، فعال می گردند . متداولترين ساختار در اين رابطه ، برنامه های جانبی می باشند :
<script runat="server"> |
مروری بر ساختارهای شرطی
در ساختارهای شرطی ، در ابتدا يک و يا چندين شرط بررسی و بر اساس نتايج بدست آمده ، يک و يا چندين کد اجراء و از اجرای ساير خطوط صرفنظر خواهد شد .به منظور آشنائی با نحوه عملکرد اين نوع ساختارهای کنترلی به بررسی يک نمونه در دنيای واقعی می پردازيم . فرض کنيد در اتومبيل خود نشسته و در حال رانندگی می باشيد . در طول مسير با چراغ های راهنمائی متعددی برخورد می نمائيد . در صورتی که چراغ قرمز باشد ، می بايست اتومبيل خود را متوقف نموده و در انتظار سبز شدن چراغ راهنمائی بمانيد . در صورت سبز بودن ( شدن ) چراغ ، می توان بلافاصله به رانندگی خود ادامه داد . نوع عملياتی که می بايست انجام داده مستقيما" متاثر از نتيجه بررسی انجام شده ، می باشد . ( در اين مورد خاص رنگ چراغ راهنمائی ) .
انواع ساختار شرطی
در اين رابطه از دو ساختار عمومی استفاده می گردد :
-
If ...Then ...Else : از ساختار فوق به منظور اجرای يک و يا چندين مجموعه خط کد پس از بررسی يک و يا چندين شرط ، استفاده می گردد . مثلا" فرض کنيد در يک صفحه وب که مسئوليت نمايش اخبار را برعهده دارد ، قصد داشته باشيم در خصوص نمايش اخبار بين المللی و يا ورزشی ، اتخاذ تصميم نمائيم . از ساختار If ...Then می توان به منظور انتخاب عباراتی به منظور اجراء که ماحصل مقايسه های پيچيده ای نظير عباراتی که از عملگرهای AND ,OR و يا NOT ، می باشند ، استفاده نمود .
-
Select Case : از ساختار فوق به منظور اجرای يک و يا چندين مجموعه خط با توجه به وجود حالات متفاوتی که يک متغير می تواند داشته باشد ، استفاده می گردد . مثلا" در يک صفحه وب که مسئوليت نمايش اخبار را برعهده دارد ، می توان از چندين آيکون که نشاندهنده نوع اخبار می باشند ، استفاده نمود . پس از کليک نمودن کاربر بر روی هر يک از آيکون ها ، اخبار مربوط به آن گروه خاص نمايش داده می شود (سياسی ، تجاری ، ورزشی و يا اخبار مربوط به تکنولوژی) .
مروری بر ساختارهای تکرار
با استفاده از ساختارهای تکرار امکان اجرای مجموعه ای از خطوط ( کدها) به دفعات مورد نياز ، فراهم می گردد .
انواع ساختار تکرار
در اين رابطه از سه ساختار عمومی استفاده می گردد :
-
For...Next : از ساختار فوق به منظور تکرار خط و يا مجموعه ای از خطوط استفاده می گردد . در اين ساختار ، در ابتدا نسبت به دفعاتی که می بايست کدهای مورد نظر تکرار گردند ، شناخت لازم وجود دارد . برای مشخص نمودن دفعاتی که می بايست دستورات تکرار گردند ، می توان از توابع متفاوتی نظير Sizeof استفاده نمود .
-
Do While : از ساختار فوق به منظور تکرار خط و يا مجموعه ای از خطوط در مواردی که در زمان طراحی نسبت به دفعاتی که می بايست دستورات اجراء گردند ، آگاهی لازم وجود ندارد ، استفاده می گردد. در چنين مواردی لازم است که در ساختار تکرار نسبت به ادامه تکرار دستورات ، اتخاذ تصميم شود . بدين منظور شرط و يا شروط خاصی بررسی و ماداميکه نتيجه مثبت ( درست ) باشد ، دستورات تکرار می گردند .
-
Fo ...Each : از ساختار فوق به عنوان گزينه ای مناسبتر نسبت به For...Next در مواردی که دارای مجموعه ای از آيتم ها می باشيم و نمی دانيم چند مرتبه می بايست عمليات تکرار انجام شود ، استفاده می گردد .
مروری بر ساختارهای پرش
با استفاده از ساختارهای پرش ، برنامه نويسان می توانند اجرای کد جاری را متوقف نموده و به يک محل ديگر ( يک بلاک ديگر )پرش نمايند . مثلا" می توانيم يک بلاک کد را با نام Showorder نوشته که مسئوليت نمايش مشخصات خريدار و کالاهای خريداری شده توسط وی را نمايش دهد . در صورتی که در طول برنامه لازم باشد به دفعات عمليات فوق را انجام دهيم ، ضرورتی به نوشتن مجدد کدها نخواهد بود . در چنين مواردی می توان اجرای برنامه را در محل مورد نظر متوقف نموده و به روتين Showorder پرش نمود . پس از اجرای مجموعه کدهای نوشته شده در روتين فوق ، مجددا" به محل فراخوانی روتين مراجعت و روند اجرائی برنامه دنبال می شود.
انواع ساختار پرش
در اين رابطه از دو ساختار عمومی استفاده می گردد :
-
Subroutines : اين نوع برنامه ها را می توان با فراخوانی نام آنان به خدمت گرفت . پس از فراخوانی هر روتين مجموعه کدهای موجود در آنان اجراء شده و در ادامه کنترل به دستور پس از محل فراخوانی روتين برمی گردد .
-
Function : عملکرد اين نوع روتين ها مشابه Subroutine بوده و تنها تفاوت موجود ، برگرداندن يک مقدار به برنامه و يا محل فراخوانی تابع است .
ساختارهای اشاره شده ، به منزله ستون فقرات هر برنامه ای می باشند که با ASP.NET نوشته می گردد .
در ادامه با انواع عملياتی که می توان توسط هر يک از ساختارهای فوق انجام داد ، بيشتر آشنا می شويم :
مثال يک : |
|
خواسته |
می خواهيم در خصوص نمايش صفحه A و يا صفحه B اتخاذ تصميم نمائيم . |
راه حل |
استفاده از ساختار تصميم گيری |
علت ؟ |
ما صرفا" می خواهيم يکی از دو احتمال موجود را بررسی نمائيم . |
مثال دوم : |
|
خواسته |
نمايش ليست اعضای يک کلوپ شامل نام ، نام خانوادگی ، آدرس و ساير اطلاعات ذيربط |
راه حل | استفاده از ساختار تکرار |
علت ؟ | ما نيازمند اجرای مجموعه کد مشابهی ( بازيابی اطلاعات مربوط به هر يک از اعضاء ) به دفعات مشخص می باشيم . ( تکرار برای هر يک از اعضاء تا زمانيکه ليست تمامی اعضاء نمايش داده شود . ) |
مثال سوم |
|
خواسته |
نمايش داده در يک جدول |
راه حل | ساختار تکرار |
علت ؟ | ما نيازمند اجرای کد مشابهی ( ايجاد يک سطر در جدول ) به منظور ايجاد تمامی سطرهای مورد نياز می باشيم . |
مثال چهارم : |
|
خواسته |
پس از استقرار يک آيتم که در صفحه مشخصات کالا تشريح شده است ، قصد داريم چندين خط اطلاعات در رابطه با نحوه ثبت سفارش را اضافه نمائيم . ممکن است ما دارای چندين آيتم می باشيم که در صفحات متعددی نمايش داده می شوند و لازم است که اطلاعات مربوط به نحوه ثبت سفارش برای هر يک از آنان نيز نمايش داده شود . |
راه حل | استفاده از يک Subroutine |
علت ؟ |
ما نيازمند توقف روند اجرای کد اصلی و اجرای کدهای لازم به منظور نحوه تشريح ثبت سفارش ، می باشيم . با توجه به اين که مجموعه خطوط لازم به منظور نمايش "نحوه ثبت سفارش " ، می بايست چندين مرتبه اجراء گردند ، بهتر است که آنان را يک مرتبه نوشته و به دفعات مورد نياز فراخوانده شوند. |
مثال پنچم : |
|
خواسته |
فرض کنيد در يک برنامه لازم است که قيمت يک کالا که توسط کاربر انتخاب می گردد ، محاسبه و در چندين محل بر روی يک صفحه ، نمايش داده شود . |
راه حل | استفاده از يک تابع |
علت ؟ |
ما نيازمند توقف روند اجرای صفحه و پرش به محلی می باشيم که کدهای مورد نظر به منظور محاسبه قيمت يک کالا را شامل می شود . پس از اجرای کدهای مورد نظر ، مجددا" به صفحه اوليه مراجعه می گردد . با توجه به اين که لازم است چندين مرتبه قيمت يک کالا ، محاسبه گردد ، بهتر است که فورمول لازم برای محاسبه قيمت را يک مرتبه نوشته و آن را به دفعات مورد نياز فراخواند . |
در بخش دوم اين مقاله به بررسی ساختارهای تصميم گيری ، خواهيم پرداخت .
نظرات شما عزیزان: